home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / zugabe / va45 / visual45 / v_aext / lib_stik.41 < prev    next >
Text File  |  1998-02-10  |  13KB  |  483 lines

  1. ****************************************************************************************
  2. STIK_PRG_SEARCH_COOKIE:
  3.     ; Entrée:
  4.     ; Sortie : STIK_TPL_POINTER <>0 si Stik est là i.e TSR+ACC
  5.  
  6.     move.l #'STiK',GWVA_APP_OBJ_SEARCH_IN_OUT
  7.     SUPEXEC GWVA_APP_OBJ_SEARCH_ONE_COOKIE
  8.     move.l GWVA_APP_OBJ_SEARCH_IN_OUT,a0
  9.  
  10.     clr.l STIK_TPL_POINTER
  11.  
  12.     cmp.l #0,a0
  13.     beq.s .no_stik
  14.  
  15.     move.l (a0),a1
  16.  
  17.     cmp.l #"STiK",(a1)
  18.     bne.s .no_magic
  19.     cmp.l #"magi",4(a1)
  20.     bne.s .no_magic
  21.     cmp.w #"c"*256,8(a1)
  22.     bne.s .no_magic
  23.  
  24.     tst.l STIK_DRV_LIST_get_dftab(a1)
  25.     beq.s .no_dftab_routine
  26.  
  27.     save.l a1
  28.     pea STIK_TRANSPORT_DRIVER
  29.     jsr ([STIK_DRV_LIST_get_dftab,a1])
  30.     lea 4(sp),sp
  31.     load.l a1
  32.  
  33.     tst.l d0
  34.     beq.s .no_transport
  35.  
  36.     move.l d0,STIK_TPL_POINTER    ; transport structure
  37.  
  38.     move.l STIK_DRV_LIST_get_dftab(a1),STIK_GET_DFTAB
  39.     move.l STIK_DRV_LIST_ETM_exec(a1),STIK_ETM_EXEC
  40.     move.l STIK_DRV_LIST_cfg(a1),STIK_STIK_CONFIG    ; stik config struct
  41.  
  42. .no_dftab_routine:
  43. .no_transport:
  44. .no_magic:
  45. .no_stik:    rts
  46. ****************************************************************************************
  47. STIK_PRG_KRmalloc:
  48.     ; Entrée :    d0.l : taille
  49.     ; Sortie :    d0.l : pointeur
  50.  
  51.     move.l d0,-(sp)
  52.     move.l STIK_TPL_POINTER,a0
  53.     jsr ([STIK_TPL_KRmalloc,a0])
  54.     lea 4(sp),sp
  55.     rts
  56. ****************************************************************************************
  57. STIK_PRG_KRfree:
  58.     ; Entrée :    a0.l : pointeur
  59.     ; Sortie :    d0.w : code erreur ?
  60.  
  61.     pea (a0)
  62.     move.l STIK_TPL_POINTER,a0
  63.     jsr ([STIK_TPL_KRfree,a0])
  64.     lea 4(sp),sp
  65.     rts
  66. ****************************************************************************************
  67. STIK_PRG_KRgetfree:
  68.     ; Entrée :    d0.w : flag
  69.     ; Sortie :    d0.l : taille
  70.  
  71.     move.w d0,-(sp)
  72.     move.l STIK_TPL_POINTER,a0
  73.     jsr ([STIK_TPL_KRgetfree,a0])
  74.     lea 2(sp),sp
  75.     rts
  76. ****************************************************************************************
  77. STIK_PRG_KRrealloc:
  78.     ; Entrée :    a0.l : pointeur bloc mémoire
  79.     ;    d0.l : nouvelle taille
  80.     ; Sortie :    d0.l : pointeur
  81.  
  82.     move.l d0,-(sp)
  83.     pea (a0)
  84.     move.l STIK_TPL_POINTER,a0
  85.     jsr ([STIK_TPL_KRrealloc,a0])
  86.     lea 4+4(sp),sp
  87.     rts
  88. ****************************************************************************************
  89. STIK_PRG_get_err_text:
  90.     ; Entrée :    d0.w : code d'erreur
  91.     ; Sortie :    d0.l : pointeur
  92.  
  93.     move.w d0,-(sp)
  94.     move.l STIK_TPL_POINTER,a0
  95.     jsr ([STIK_TPL_get_err_text,a0])
  96.     lea 2(sp),sp
  97.     rts
  98. ****************************************************************************************
  99. STIK_PRG_get_vstr:
  100.     ; Entrée :    a0.l : pointeur sur le nom d'une variable stik
  101.     ; Sortie :    d0.l : pointeur
  102.  
  103.     pea (a0)
  104.     move.l STIK_TPL_POINTER,a0
  105.     jsr ([STIK_TPL_getvstr,a0])
  106.     lea 4(sp),sp
  107.     rts
  108. ****************************************************************************************
  109. STIK_PRG_carrier_detect:
  110.     ; Entrée :
  111.     ; Sortie :    d0.w : state
  112.  
  113.     move.l STIK_TPL_POINTER,a0
  114.     jmp ([STIK_TPL_carrier_detect,a0])
  115. ****************************************************************************************
  116. STIK_PRG_TCP_open:
  117.     ; Entrée :    d0.l : remote host address
  118.     ;    d1.w : remote port
  119.     ;    d2.w : type of service (cf. TCP/IP Illustrated Volume 1 p.35)
  120.     ;    d3.w : size of output buff
  121.     ; Sortie :    d0.w : handle or error code
  122.  
  123.     move.w d3,-(sp)
  124.     move.w d2,-(sp)
  125.     move.w d1,-(sp)
  126.     move.l d0,-(sp)
  127.     move.l STIK_TPL_POINTER,a0
  128.     jsr ([STIK_TPL_TCP_open,a0])
  129.     lea 2+2+2+4(sp),sp
  130.     rts
  131. ****************************************************************************************
  132. STIK_PRG_TCP_close:
  133.     ; Entrée :    d0.w : handle
  134.     ;    d1.w : timeout
  135.     ; Sortie :    d0.w : error code
  136.  
  137.     move.w d1,-(sp)
  138.     move.w d0,-(sp)
  139.     move.l STIK_TPL_POINTER,a0
  140.     jsr ([STIK_TPL_TCP_close,a0])
  141.     lea 2+2(sp),sp
  142.     rts
  143. ****************************************************************************************
  144. STIK_PRG_TCP_send:
  145.     ; Entrée :    d0.w : handle
  146.     ;    a0.l : pointeur buffer
  147.     ;    d1.w : taille (<taille bufer reservé au début en output)
  148.     ; Sortie :    d0.w : error code
  149.  
  150.     move.w d1,-(sp)
  151.     pea (a0)
  152.     move.w d0,-(sp)
  153.     move.l STIK_TPL_POINTER,a0
  154.     jsr ([STIK_TPL_TCP_send,a0])
  155.     lea 2+4+2(sp),sp
  156.     rts
  157. ****************************************************************************************
  158. STIK_PRG_TCP_wait_state:
  159.     ; Entrée :    d0.w : handle
  160.     ;    d1.w : state
  161.     ;    d2.w : timeout
  162.     ; Sortie :    d0.w : error code
  163.  
  164.     move.w d2,-(sp)
  165.     move.w d1,-(sp)
  166.     move.w d0,-(sp)
  167.     move.l STIK_TPL_POINTER,a0
  168.     jsr ([STIK_TPL_TCP_wait_state,a0])
  169.     lea 2+2+2(sp),sp
  170.     rts
  171. ****************************************************************************************
  172. STIK_PRG_TCP_ack_wait:
  173.     ; Entrée :    d0.w : handle
  174.     ;    d1.w : timeout
  175.     ; Sortie :    d0.w : error code
  176.  
  177.     move.w d1,-(sp)
  178.     move.w d0,-(sp)
  179.     move.l STIK_TPL_POINTER,a0
  180.     jsr ([STIK_TPL_TCP_ack_wait,a0])
  181.     lea 2+2(sp),sp
  182.     rts
  183. ****************************************************************************************
  184. STIK_PRG_UDP_open:
  185.     ; Entrée :    d0.l : remote host address
  186.     ;    d1.w : remote port
  187.     ; Sortie :    d0.w : handle or error code
  188.  
  189.     move.w d1,-(sp)
  190.     move.l d0,-(sp)
  191.     move.l STIK_TPL_POINTER,a0
  192.     jsr ([STIK_TPL_UDP_open,a0])
  193.     lea 2+4(sp),sp
  194.     rts
  195. ****************************************************************************************
  196. STIK_PRG_UDP_close:
  197.     ; Entrée :    d0.w : handle
  198.     ; Sortie :    d0.w : error code
  199.  
  200.     move.w d0,-(sp)
  201.     move.l STIK_TPL_POINTER,a0
  202.     jsr ([STIK_TPL_UDP_close,a0])
  203.     lea 2(sp),sp
  204.     rts
  205. ****************************************************************************************
  206. STIK_PRG_UDP_send:
  207.     ; Entrée :    d0.w : handle
  208.     ;    a0.l : pointeur buffer
  209.     ;    d1.w : taille (<taille bufer reservé au début en output)
  210.     ; Sortie :    d0.w : error code
  211.  
  212.     move.w d1,-(sp)
  213.     pea (a0)
  214.     move.w d0,-(sp)
  215.     move.l STIK_TPL_POINTER,a0
  216.     jsr ([STIK_TPL_UDP_send,a0])
  217.     lea 2+4+2(sp),sp
  218.     rts
  219. ****************************************************************************************
  220. STIK_PRG_CNkick:
  221.     ; Entrée :    d0.w : handle
  222.     ; Sortie :    d0.w : error code
  223.  
  224.     move.w d0,-(sp)
  225.     move.l STIK_TPL_POINTER,a0
  226.     jsr ([STIK_TPL_CNkick,a0])
  227.     lea 2(sp),sp
  228.     rts
  229. ****************************************************************************************
  230. STIK_PRG_CNbyte_count:
  231.     ; Entrée :    d0.w : handle
  232.     ; Sortie :    d0.w : nombre octets en attente
  233.  
  234.     move.w d0,-(sp)
  235.     move.l STIK_TPL_POINTER,a0
  236.     jsr ([STIK_TPL_CNbyte_count,a0])
  237.     lea 2(sp),sp
  238.     rts
  239. ****************************************************************************************
  240. STIK_PRG_CNget_char:
  241.     ; Entrée :    d0.w : handle
  242.     ; Sortie :    d0.w : caractère suivant
  243.  
  244.     move.w d0,-(sp)
  245.     move.l STIK_TPL_POINTER,a0
  246.     jsr ([STIK_TPL_CNget_char,a0])
  247.     lea 2(sp),sp
  248.     rts
  249. ****************************************************************************************
  250. STIK_PRG_CNget_NDB:
  251.     ; Entrée :    d0.w : handle
  252.     ; Sortie :    d0.l : pointeur NDB
  253.  
  254.     move.w d0,-(sp)
  255.     move.l STIK_TPL_POINTER,a0
  256.     jsr ([STIK_TPL_CNget_NDB,a0])
  257.     lea 2(sp),sp
  258.     rts
  259. ****************************************************************************************
  260. STIK_PRG_CNget_block:
  261.     ; Entrée :    d0.w : handle
  262.     ;    a0.l : pointeur buffer
  263.     ;    d1.w : nombre d'octets à recevoir
  264.     ; Sortie :    d0.w : code d'erreur
  265.  
  266.     move.w d1,-(sp)
  267.     pea (a0)
  268.     move.w d0,-(sp)
  269.     move.l STIK_TPL_POINTER,a0
  270.     jsr ([STIK_TPL_CNget_block,a0])
  271.     lea 2+4+2(sp),sp
  272.     rts
  273. ****************************************************************************************
  274. STIK_PRG_TCP_housekeep:
  275.     ; Entrée :
  276.     ; Sortie :
  277.  
  278.     move.l STIK_TPL_POINTER,a0
  279.     jsr ([STIK_TPL_housekeep,a0])
  280.     rts
  281. ****************************************************************************************
  282. STIK_PRG_resolve:
  283.     ; Entrée :    a0.l : pointer to domain name
  284.     ;    a1.l : pointer for returned resolved domain name
  285.     ;    a2.w : pointer to array of returned IP adresses (.L)
  286.     ;    d0.w : size of array
  287.     ; Sortie :    d0.w : error code
  288.  
  289.     move.w d0,-(sp)
  290.     pea (a2)
  291.     pea (a1)
  292.     pea (a0)
  293.     move.l STIK_TPL_POINTER,a0
  294.     jsr ([STIK_TPL_resolve,a0])
  295.     lea 4+4+4+2(sp),sp
  296.     rts
  297. ****************************************************************************************
  298. STIK_PRG_ser_disable:
  299.     ; Entrée :
  300.     ; Sortie :
  301.  
  302.     move.l STIK_TPL_POINTER,a0
  303.     jsr ([STIK_TPL_ser_disable,a0])
  304.     rts
  305. ****************************************************************************************
  306. STIK_PRG_ser_enable:
  307.     ; Entrée :
  308.     ; Sortie :
  309.  
  310.     move.l STIK_TPL_POINTER,a0
  311.     jsr ([STIK_TPL_ser_enable,a0])
  312.     rts
  313. ****************************************************************************************
  314. STIK_PRG_set_flag:
  315.     ; Entrée :    d0.w : flag
  316.     ; Sortie :    d0.w : code d'erreur
  317.  
  318.     move.w d0,-(sp)
  319.     move.l STIK_TPL_POINTER,a0
  320.     jsr ([STIK_TPL_set_flag,a0])
  321.     lea 2(sp),sp
  322.     rts
  323. ****************************************************************************************
  324. STIK_PRG_clear_flag:
  325.     ; Entrée :    d0.w : flag
  326.     ; Sortie :    d0.w : code d'erreur
  327.  
  328.     move.w d0,-(sp)
  329.     move.l STIK_TPL_POINTER,a0
  330.     jsr ([STIK_TPL_clear_flag,a0])
  331.     lea 2(sp),sp
  332.     rts
  333. ****************************************************************************************
  334. STIK_PRG_CNgetinfo:
  335.     ; Entrée :    d0.w : handle
  336.     ; Sortie :    d0.l : pointeur CIB
  337.  
  338.     move.w d0,-(sp)
  339.     move.l STIK_TPL_POINTER,a0
  340.     jsr ([STIK_TPL_CNgetinfo,a0])
  341.     lea 2(sp),sp
  342.     rts
  343. ****************************************************************************************
  344. STIK_PRG_on_port:
  345.     ; Entrée :    a0.l : pointeur sur un nom de port dans DEV_LIST
  346.     ; Sortie :    d0.w : code d'erreur
  347.  
  348.     pea (a0)
  349.     move.l STIK_TPL_POINTER,a0
  350.     jsr ([STIK_TPL_on_port,a0])
  351.     lea 4(sp),sp
  352.     rts
  353. ****************************************************************************************
  354. STIK_PRG_off_port:
  355.     ; Entrée :    a0.l : pointeur sur un nom de port dans DEV_LIST
  356.     ; Sortie :    d0.w : code d'erreur
  357.  
  358.     pea (a0)
  359.     move.l STIK_TPL_POINTER,a0
  360.     jsr ([STIK_TPL_off_port,a0])
  361.     lea 4(sp),sp
  362.     rts
  363. ****************************************************************************************
  364. STIK_PRG_setvstr:
  365.     ; Entrée :    a0.l : config variable name
  366.     ;    a1.l : value
  367.     ; Sortie :    d0.w : code d'erreur
  368.  
  369.     pea (a1)
  370.     pea (a0)
  371.     move.l STIK_TPL_POINTER,a0
  372.     jsr ([STIK_TPL_setvstr,a0])
  373.     lea 4+4(sp),sp
  374.     rts
  375. ****************************************************************************************
  376. STIK_PRG_query_port:
  377.     ; Entrée :    a0.l : pointeur sur un nom de port dans DEV_LIST
  378.     ; Sortie :    d0.w : code d'erreur
  379.  
  380.     pea (a0)
  381.     move.l STIK_TPL_POINTER,a0
  382.     jsr ([STIK_TPL_query_port,a0])
  383.     lea 4(sp),sp
  384.     rts
  385. ****************************************************************************************
  386.     ifnd LIB_STING
  387. ****************************************************************************************
  388. STIK_PRG_g_resolve:
  389.     ; Entrée :    a0.l : pointer to domain name
  390.     ;    a1.l : pointer for returned resolved domain name
  391.     ;    a2.w : pointer to array of returned IP adresses (.L)
  392.     ;    d0.w : size of array
  393.     ; Sortie :    d0.w : error code
  394.  
  395.     move.w d0,-(sp)
  396.     pea (a2)
  397.     pea (a1)
  398.     pea (a0)
  399.     move.l STIK_TPL_POINTER,a0
  400.     jsr ([STIK_TPL_g_resolve,a0])
  401.     lea 4+4+4+2(sp),sp
  402.     rts
  403. ****************************************************************************************
  404. STIK_PRG_g_TCP_wait_state:
  405.     ; Entrée :    d0.w : handle
  406.     ;    d1.w : state
  407.     ;    d2.w : timeout
  408.     ; Sortie :    d0.w : error code
  409.  
  410.     move.w d2,-(sp)
  411.     move.w d1,-(sp)
  412.     move.w d0,-(sp)
  413.     move.l STIK_TPL_POINTER,a0
  414.     jsr ([STIK_TPL_g_TCP_wait_state,a0])
  415.     lea 2+2+2(sp),sp
  416.     rts
  417. ****************************************************************************************
  418.     else
  419. ****************************************************************************************
  420. STING_PRG_CNgets:
  421.     ; Entrée :    a0.l : pointer to buffer
  422.     ;    d0.w : cn
  423.     ;    d1.w : length
  424.     ;    d2.w : delimiter
  425.     ; Sortie :    d0.w : error code
  426.  
  427.     move.w d2,-(sp)
  428.     move.w d1,-(sp)
  429.     pea (a0)
  430.     move.w d0,-(sp)
  431.     move.l STIK_TPL_POINTER,a0
  432.     jsr ([STING_TPL_CNgets,a0])
  433.     lea 2+4+2+2(sp),sp
  434.     rts
  435. ****************************************************************************************
  436. STING_PRG_ICMP_send:
  437.     ; Entrée :    a0.l : pointer to data
  438.     ;    d0.l : destination host
  439.     ;    d1.b : type
  440.     ;    d2.b : code
  441.     ;    d3.w : length
  442.     ; Sortie :    d0.w : error code
  443.  
  444.     move.w d3,-(sp)
  445.     pea (a0)
  446.     move.w d2,-(sp)
  447.     move.w d1,-(sp)
  448.     move.l d0,-(sp)
  449.     move.l STIK_TPL_POINTER,a0
  450.     jsr ([STING_TPL_ICMP_send,a0])
  451.     lea 4+2+2+4+2(sp),sp
  452.     rts
  453. ****************************************************************************************
  454. STING_PRG_ICMP_handler:
  455.     ; Entrée :    a0.l : pointer to routine
  456.     ;    d0.w : install code
  457.     ; Sortie :    d0.w : error code
  458.  
  459.     move.w d0,-(sp)
  460.     pea (a0)
  461.     move.l STIK_TPL_POINTER,a0
  462.     jsr ([STING_TPL_ICMP_handler,a0])
  463.     lea 4+2(sp),sp
  464.     rts
  465. ****************************************************************************************
  466. STING_PRG_ICMP_discard:
  467.     ; Entrée :    a0.l : pointer to ICPM datagram
  468.     ; Sortie :    d0.w : error code
  469.  
  470.     pea (a0)
  471.     move.l STIK_TPL_POINTER,a0
  472.     jsr ([STING_TPL_ICMP_discard,a0])
  473.     lea 4(sp),sp
  474.     rts
  475. ****************************************************************************************
  476.     endc    ; ifnd LIB_STING
  477. ****************************************************************************************
  478.  
  479.  DATA
  480. STIK_TRANSPORT_DRIVER:        dc.b 'TRANSPORT_TCPIP',0    
  481.  even
  482.  TEXT
  483.